package ru.pb.game.network.engine.client.packets.sendable;

import ru.pb.game.data.xml.holders.ChannelHolder;
import ru.pb.game.network.engine.client.packets.GameServerToClientPacket;
import ru.pb.game.objects.model.players.Player;
import ru.pb.game.objects.storage.ObjectsStorage;
import ru.pb.global.data.model.PlayerInfo;

/**
 * @author DarkSkeleton
 */
public class PROTOCOL_LOBBY_GET_PLAYERINFO_ACK extends GameServerToClientPacket
{
	private int _id;
	private Player pl;
	private PlayerInfo pli;

	public PROTOCOL_LOBBY_GET_PLAYERINFO_ACK(int id)
	{
		_id = id;
	}

	@Override
	public void runImpl()
	{
		pl = ObjectsStorage.getInstance().getPlayer(ChannelHolder.getChannel(getClient().getChannelId()).getAllPlayers().get(_id));
		pli = pl.getPlayerInfos();
	}

	@Override
	public void writeImpl()
	{
		writeH(2639);

		// НЕ СЕЗОН
		writeD(pli.getFights(false)); // Количество боев
		writeD(pli.getWinFights(false)); // Количество побед
		writeD(pli.getLostFights(false)); // Количество поражениев
		writeD(0); // Непонятно чо
		writeD(pli.getKills(false)); // Количество убийств
		writeD(0); // Непонятно чо
		writeD(pli.getDeaths(false)); // Количество смертей
		writeD(0); // Непонятно чо
		writeD(0); // Непонятно чо
		writeD(pli.getEscapes(false)); // Количество побегов с поля боя
		// ==========================

		// СЕЗОН
		writeD(pli.getFights(true)); // Количество боев
		writeD(pli.getWinFights(true)); // Количество побед
		writeD(pli.getLostFights(true)); // Количество поражениев
		writeD(0); // Непонятно чо
		writeD(pli.getKills(true)); // Количество убийств
		writeD(0); // Непонятно чо
		writeD(pli.getDeaths(true)); // Количество смертей
		writeD(0); // Непонятно чо
		writeD(0); // Непонятно чо
		writeD(pli.getEscapes(true)); // Количество побегов с поля боя
		// =============================
	}
}